/**
 * 课程数据类型定义
 * 基于 new_course_schedule.json 数据结构定义的TypeScript接口
 */

/** 教师信息 */
export interface Teacher {
  name: string;
  role: string;
  title: string;
}

/** 地点信息 */
export interface Location {
  name: string;
  type: string;
  full_name: string;
}

/** 课程信息 */
export interface Course {
  course_name: string;
  teacher: Teacher;
  day_of_week: number; // 1-7 对应周一到周日
  location: Location;
  section: {
    start: number;
    end: number;
  };
  weeks: {
    start: number;
    end: number;
    pattern: 'every' | 'odd' | 'even';
  };
  courseType: string;
}

/** 班级信息 */
export interface ClassInfo {
  class_code: string;
  class_name: string;
  start_date: string;
  college_name: string;
}

/** API响应的数据体 */
export interface CourseScheduleData {
  class_info: ClassInfo;
  courses: Course[];
}

/** 完整的课程表API响应 */
export interface CourseScheduleResponse {
  code: number;
  message: string;
  data: CourseScheduleData;
}

/** 经过处理后，用于UI渲染的课程对象 */
export interface ProcessedCourse extends Course {
  /** 课程颜色 */
  color: string;
  /** 动画延迟时间 */
  animationDelay: number;
  /** 在网格中的位置 */
  gridPosition: {
    row: number;
    column: number;
    rowSpan: number;
  };
}
